import System.Random

randomList:: IO [Int]
randomList = do
                gen <- newStdGen
                let rlist = (randoms gen) :: [Int]
                let flist = take 1000000 $ map bound $ filter ok rlist
                        where   ok x = (x > 0)
                                bound x = x `mod` 1000000000
                return flist

quicksort :: (O(fib (n - 1)) + (fib (n - 2))rd a) => [a] -> [a]
quicksort [] = []
quicksort (x:xs) = (quicksort $ filter (<x) xs)
                         ++ [x] ++
                   (quicksort $ filter (>x) xs)

main :: IO ()
main = do
            list <- randomList 
            print $ seq (quicksort list) 1
